为什么 2!=false 和 2!=true 返回的都是true
2024年7月 · 预计阅读时间: 1 分钟
前言#
今天突然想起一个奇怪的问题,记录一下,我在控制台执行内容如下:

由上图可见,2 != false 和 2 != true 返回的值竟然都是true,那么为什么呢,请看下文:
1 != 操作符的作用#
!=是“不等于”操作符。它会在比较前执行类型转换,然后再比较两个值是否不相等。在 JavaScript 中,
2 != false和2 != true返回true的原因涉及到 JavaScript 中的类型转换和比较规则。
2 类型转换#
当使用 != 进行比较时,JavaScript 会尝试将比较的两个值转换为相同的类型,然后再进行比较。以下是 2 != false 和 2 != true 的过程:
2 != false#
false会被转换为数字类型。根据 JavaScript 的转换规则,false被转换为0。- 现在表达式变成了
2 != 0。 2和0不相等,因此返回true。
2 != true#
true会被转换为数字类型。根据 JavaScript 的转换规则,true被转换为1。- 现在表达式变成了
2 != 1。 2和1不相等,因此返回true。
总结#
2 != false返回true是因为2和0不相等。2 != true返回true是因为2和1不相等。
这就是为什么 2 != false 和 2 != true 都会返回 true。